CableCARD™ devices (also known as PODs—Point Of Deployment modules) are designed for use in the cable industry and satellite television radio industry to provide conditional access functions to television host devices such as television set-top boxes, VCRs, PVRs, and television receivers. The first generation of such devices were designed to accommodate a single stream of video data. Subsequently the “OpenCable™ Specifications: Multi-Stream CableCARD™ Interface OC-SP-MC-IF-C01-050331” from Cable Labs has been introduced to provide multi stream capability for such devices. Briefly, the CableCARD™-Host interface specification defines the interface between a digital cable host device, and the CableCARD™ device. The Multi-Stream CableCARD™ device (also called an M-CARD) is a second generation CableCARD™ device (single stream CableCARD™ devices are also called S-CARDs). A multi-tuner Host can pass multiple channels through an M-CARD device. The above document defines an M-CARD device that can support multiple transport streams. The M-CARD device described in the above document is backward compatible with Single-Stream CableCARD™ devicess as defined via [SCTE28], the Host-POD Interface Standard [OC-CC] and the POD Copy Protection System [SCTE41], and supports multiple program decryption from multiple transport streams. The above-referenced documents are hereby incorporated herein by reference.
The OCAP (OpenCable™ Applications Platform) specifies a mechanism for Java™ programs to run, for example, to implement functions such as graphics functions and other video content. However, it is noted that although Java™ is designed to be a language that can be written once and then ported to many different processing environments, the reality is quite different and many problems can be encountered when attempting to run Java™ code on multiple environments. For example, when Java™ code is generated and debugged in a first operational environment, it may not function properly in a second operational environment. Therefore, for OCAP to become widely accepted, the Java™ code should be functional on every platform on which it is to run. This conceivably means each set of code must be individually tested with each hardware platform from all manufacturers in order to assure that the code functions properly.